# -*- coding: utf-8 -*-
# Python中默认的编码格式是 ASCII 格式，在没修改编码格式时无法正确打印汉字，所以在读取中文时会报错。


# decode()与encode()。
#
# ***decode()方法将其他编码字符转化为Unicode编码字符。
# encode()方法将Unicode编码字符转化为其他编码字符。*

# bytes是Python 3中特有的，Python 2 里不区分bytes和str。

# bytes是byte的序列，而str是unicode的序列。


# 如果我们从网络或磁盘上读取了字节流，那么读到的数据就是bytes

# 实际应用中在互联网上是通过二进制进行传输，所以就需要将str转换成bytes进行传输，(一个unicode有很多个byte)
# 而在接收中通过decode()解码成我们需要的编码进行处理数据这样不管对方是什么编码而本地是我们使用的编码这样就不会乱码。

# encode的作用是将unicode编码的字符串编码成二进制数据，如str2.encode('utf-8'),表示将unicode编码的字符串编码成utf-8。
# ——————编码 编码之后是二进值 看不懂           网络传入时使用

# decode的作用是将二进制数据解码成unicode编码，如str1.decode('utf-8'),表示将utf-8的编码字符串解码成unicode编码。
# ——————解码 解码之后是str可以看懂            本地运行时使用
# 简单的来说：decode就是把二进制数据(bytes)转化成人看的懂得英文或者汉字(decode用的比较多)

str = "C语言中文网"
bytes=str.encode()
print("1",bytes)
print("2",bytes.decode())

print(type(b'xxxx'))
print(type('xxxx'))

i = 10
print(type(i))
print(type(int))
print(type(int(312412)))


# 由于Python的字符串类型是str，在内存中以Unicode表示，一个字符对应若干个字节。
# 如果要在网络上传输，或者保存到磁盘上，就需要把str变为以字节为单位的bytes。
#
# Python对bytes类型的数据用带b前缀的单引号或双引号表示：
#
# x = b'ABC'
# 要注意区分'ABC'和b'ABC'，前者是str，后者虽然内容显示得和前者一样，但bytes的每个字符都只占用一个字节。

# 反过来，如果我们从网络或磁盘上读取了字节流，那么读到的数据就是bytes。
# 要把bytes变为str，就需要用decode()方法：

m1 = b'abc'.decode('utf-8')
m2 = '中文'.encode('utf-8')
print(m1)
print(m2)